【剑指Offer I】57. 和为s的两个数字
题目
输入一个递增排序的数组和一个数字s,在数组中查找两个数,使得它们的和正好是s。如果有多对数字的和等于s,则输出任意一对即可。
解答
思路
对于无序的数组,解决两数之和问题,可以使用哈希表。
而本题是有序数组,可以优化空间复杂度,利用有序的性质,使用对撞指针寻找符合条件的数对。
代码
1 | class Solution { |
复杂度
- 时间复杂度
O(N)
- 空间复杂度
O(1)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 namespace LANG!
评论